package com.yzh.teacher.link;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

/**
 * 将ArrayList替换为LinkedList之后，不变的是什么？
 * 1.后续操作代码没有变
 * 2.执行结果没有变
 *
 * 将ArrayList替换为LinkedList之后，变的是什么？
 * 1.底层的数据结构发生了变化 数组---->双向链表
 * 2.具体的操作方式变化了
 *   list.remove(2);
 *
 * LinkedList提供了更多的方法
 *   可以作为线性表、栈、队列来使用
 *
 * 实际开发中更多使用面向接口编程
 *
 *
 * 到底是使用ArrayList还是LinkedList
 *   ArrayList:按照索引随机访问，遍历集合
 *   LinkedList：添加、删除操作多*
 *
 */
public class TestLinkedList1 {
    public static void main(String[] args) {
        //LinkedList<Integer> list = new LinkedList();
        //ArrayList list = new ArrayList(100);
        List<Integer> list = new LinkedList();
        list.add(80);
        list.add(70);
        list.add(90);
        list.remove(2);
        //list.addAll()
        list.add(0,100);
        System.out.println(list.size());
        System.out.println(list.isEmpty());
        System.out.println(list.indexOf(780));
        System.out.println(list.contains(80));
        int elem = list.get(2);
        System.out.println(elem);
        System.out.println(list);
        Iterator it = list.iterator();

        //list.addFirst(60);
        list.add(0,60);
        //list.addLast(50);
        list.add(50);

    }
}
